package com.swn.cm.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.swn.common.util.DbHelper;

/**
 * 员工的增删改查
 * 
 * @author 张泽薇
 * @Date 2017年8月1日  上午9:17:20
 * @Note <这里是该类的使用注意事项>
 * 修改日期  修改人  修改内容
 * <多次修改需另起一行>
 * @company 济南舒卫能生物技术有限公司
 */
@Service("EmpService")
public class EmpService {
	
	@Autowired
	DbHelper dbHelper;
	
	/**
	 * 查询所有的员工
	 * 
	 * @return List<Map<String,Object>>
	 *
	 * @Author zhangzewei
	 * @Date 2017年6月29日 上午11:49:01 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public List<Map<String, Object>> queryMapList(){
		StringBuilder sql = new StringBuilder();
		sql.append("   select ").append("sce.id,sce.emp_name,sce.emp_tel,sce.create_time,sce.login_user,sct.team_name ")
		   .append("   ,ifnull((")
		   .append("      select group_concat(name) name from shop_cm_role where id in(select role_id from shop_cm_employee_role where employee_id=sce.id)")
		   .append("    ),'')role_names")
		   .append("   ,ifnull((")
		   .append("      select group_concat(role_id) role_id from shop_cm_employee_role where employee_id=sce.id")
		   .append("    ),'')role_ids")
		   .append("   from shop_cm_employee sce left join shop_cm_team sct on sce.team_id=sct.id order by sce.emp_name");
		Map<String, Object> paramMap = null;
		return dbHelper.queryForList(sql.toString(), paramMap);
	}
	
	/**
	 * 根据电话和登陆账户查询
	 * 
	 * @param map
	 * @return List<Map<String,Object>>
	 *
	 * @Author 张泽薇
	 * @Date 2017年7月4日 下午3:01:08 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public List<Map<String, Object>> queryEmpListByColumn (Map<String, Object> map){
		String sql="select login_user,emp_tel from shop_cm_employee where login_user=:login_user or emp_tel=:emp_tel";
		List<Map<String, Object>> returnList = null;
		returnList = dbHelper.queryForList(sql, map);
		return returnList;
		
	}
	
	/**
	 * 添加员工
	 * 
	 * @param paramMap
	 * @return int
	 *
	 * @Author zhangzewei
	 * @Date 2017年6月29日 下午6:46:34 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public int saveEmp(Map<String,Object> paramMap){
		
		return dbHelper.saveMap(paramMap, "shop_cm_employee");
	}
	
	/**
	 * 根据id查询一个员工
	 * 
	 * @param id
	 * @return Map<String,Object>
	 *
	 * @Author zhangzewei
	 * @Date 2017年6月29日 下午6:47:13 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public Map<String, Object> queryEmpMapById(String id) {
		Map<String, Object> keyMap = new HashMap<>();
		keyMap.put("id", id);
		return dbHelper.queryMapById(keyMap, "shop_cm_employee");
	}
	
	/**
	 * 修改员工信息
	 * 
	 * @param paramMap
	 * @return int
	 *
	 * @Author 张泽薇
	 * @Date 2017年7月4日 下午3:01:48 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public int updateEmp(Map<String, Object> paramMap) {
		return dbHelper.updateMap(paramMap, "shop_cm_employee");
	}
	
	/**
	 * 删除一个员工
	 * 
	 * @param id
	 * @return int
	 *
	 * @Author 张泽薇
	 * @Date 2017年7月4日 下午3:02:11 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public int deleteEmp(String id) {
		Map<String, Object> keyMap = new HashMap<>();
		keyMap.put("id", id);
		int delete = dbHelper.delete(keyMap, "shop_cm_employee");
	    return delete;
	}
	
	/**
	 * 添加团队
	 * 
	 * @param paramMap
	 * @return int
	 *
	 * @Author 张泽薇
	 * @Date 2017年7月4日 下午3:02:52 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public int saveDept(Map<String,Object> paramMap){
		
		return dbHelper.saveMap(paramMap, "shop_cm_team");
	}
	
	/**
	 * 查询团队
	 * 
	 * @return List<Map<String,Object>>
	 *
	 * @Author 张泽薇
	 * @Date 2017年7月4日 下午3:03:17 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public List<Map<String, Object>> queryDeptMapList(){
		StringBuilder sql = new StringBuilder();
		sql.append("select id,team_name from shop_cm_team order by team_name");
		Map<String, Object> paramMap = null;
		return dbHelper.queryForList(sql.toString(), paramMap);
	}
	
	/**
	 * 根据id查询团队
	 * 
	 * @param id
	 * @return Map<String,Object>
	 *
	 * @Author 张泽薇
	 * @Date 2017年7月4日 下午3:03:56 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public Map<String, Object> queryDeptById(String id) {
		Map<String, Object> keyMap = new HashMap<>();
		keyMap.put("id", id);
		return dbHelper.queryMapById(keyMap, "shop_cm_team");
	}
}
